The script has four mandatory arguments, and also accepts optional
build options that are passed on to meson. Checking for the number
of arguments *before* filtering out the optional ones means that
`./install-meson-project.sh -Done=1 -Dtwo=2 -Dthree=3 -Dfour=4`
is considered valid, even though not a single required argument
is passed.
Fix this by filtering out the arguments before doing the usage
check. As it is a nice touch to have usage information at the
top of the script, move the message into a usage() function at
the top.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>
set -e
-if [[ $# -lt 4 ]]; then
- echo Usage: $0 [options] [repo-url] [commit] [subdir]
- echo Options:
- echo -Dkey=val
- exit 1
-fi
+usage() {
+ cat <<-EOF
+ Usage: $(basename $0) [OPTION…] REPO_URL COMMIT SUBDIR PREPARE
+
+ Check out and install a meson project
+
+ Options:
+ -Dkey=val Option to pass on to meson
+
+ EOF
+}
MESON_OPTIONS=()
shift
done
+if [[ $# -lt 4 ]]; then
+ usage
+ exit 1
+fi
+
REPO_URL="$1"
COMMIT="$2"
SUBDIR="$3"